// 开始动画对象构造函数
var beginAnimObj = function() {
    this.x; // 动画元素的x坐标
    this.y; // 动画元素的y坐标
    this.isLive; // 动画元素是否存活
    this.l; // 动画元素的边长
    this.color; // 动画元素的颜色
    this.toDownSpeed; // 垂直方向速度
    this.toVSpeed; // 水平方向速度
}

var AnimPX = new Array(); // 动画元素的x坐标数组
var AnimPY = new Array(); // 动画元素的y坐标数组

// 初始化开始动画对象
beginAnimObj.prototype.init = function() {
    this.isLive = true; // 设置为存活状态
    this.x = 0; // x坐标设置为0
    this.y = 0; // y坐标设置为0
    this.l = 40; // 边长设置为40
    this.toDownSpeed = 0; // 垂直方向速度初始化为0
    this.toVSpeed = canWidth * 0.021; // 水平方向速度初始化为画布宽度的0.021倍
    this.color = squareColor[0]; // 颜色设置为默认颜色
}

// 控制动画元素跳跃
beginAnimObj.prototype.jump = function() {
    if (this.isLive) {
        this.toDownSpeed = -this.toDownSpeed; // 反转垂直方向速度
        this.toVSpeed = canWidth * 0.021 * 0.5; // 设置水平方向速度
        jump_count++; // 增加跳跃次数
        // 如果动画元素超出画布宽度，调整位置
        if (this.x + this.l > canWidth) {
            this.x = canWidth - this.l;
        }
        // 更新x坐标
        this.x += this.toVSpeed;
        // 如果水平方向速度小于3，增加速度
        if (this.toVSpeed + 2 < 3) {
            this.toVSpeed += 1;
        }
    }
}

// 控制动画元素下落
beginAnimObj.prototype.toDown = function() {
    if (this.isLive) {
        // 更新垂直方向速度
        this.toDownSpeed += 9.8 * 1 * 0.06;
        // 更新y坐标
        this.y += this.toDownSpeed;
        // 更新x坐标
        this.x += this.toVSpeed;
        // 如果动画元素超出画布高度，设置为不存活状态
        if (this.y > canHeight) {
            this.isLive = false;
        }
    }
}

// 绘制开始动画元素
beginAnimObj.prototype.draw = function() {
    if (this.isLive) {
        // 显示动画元素
        document.getElementById("square_main").style.display = "block";
        document.getElementById("square_main").style.left = this.x + "px";
        document.getElementById("square_main").style.top = this.y + "px";
        // 如果动画元素到达指定位置，触发跳跃
        if (this.y + this.l > canHeight * 0.35 && this.x + this.l * 0.5 < canWidth * 0.5 + 120 && this.x + this.l * 0.5 > canWidth * 0.5 - 120) {
            this.jump();
            document.getElementById("game_title").innerHTML = "方&nbsp;块&nbsp;<i style='font-size: 46px;color:#FF6688;'>跳&nbsp;</i>跃";
        }
        // 调用下落方法
        this.toDown();
    } else {
        // 隐藏动画元素
        document.getElementById("square_main").style.display = "none";
    }
}